Apparatus and method for establishing and maintaining a ds-lite tunnel

ABSTRACT

An electronic apparatus for establishing a Dual-Stack Lite (DS-lite) tunnel is provided. The apparatus sends a request for an Internet Protocol (IP) address of a Domain Name System (DNS) server and a domain name of an Address Family Transition Router (AFTR) server to a Dynamic Host Configuration Protocol (DHCP) server using an IP address of the DHCP server, receives the IP address of the DNS server and the domain name of the AFTR server from the DHCP server in response to the request, sends a DNS query including the domain name of the AFTR server to the DNS server using the IP address of the DNS server. In response to the DNS query being successful, the apparatus receives an IP address of the AFTR server from the DNS server, and establishes the DS-lite tunnel between the apparatus and the AFTR server using the IP address of the AFTR server.

BACKGROUND

Electronic communication on the Internet is performed according toInternet Protocol (IP). IP addresses are used to identify electronicdevices within a network environment. Internet Protocol version 4 (IPv4)is the fourth iteration of the Internet Protocol, and uses a 32-bitaddress scheme. However, IPv4 address resources are limited, and withthe growth of the Internet and increasing numbers of devices it isexpected that the number of unused IPv4 addresses will eventually runout. Internet Protocol version 6 (IPv6) was created to solve thisproblem. By using a 128-bit address scheme, IPv6 fulfills the need formore IP addresses. However, providing IPv6 addresses alone is often notworkable because most of the systems that make up the public Internetare still enabled and support only IPv4, and many user's client devicesdo not yet fully support IPv6. Accordingly, during the transition fromIPv4 to IPv6, service providers must continue to support both versions.

Dual-Stack Lite (DS-lite) is a solution that has evolved from IPv4 toIPv6. DS-lite allows service providers with IPv6 infrastructure tomigrate to an IPv6 access network without changing end user software,and connect their IPv4 subscribers to the Internet. Without DS-lite, agateway device must have at least one IPv4 address and one IPv6 addressin order to provide client devices in the local network of the gatewaydevice with IPv4/IPv6 dual-stack routing, for example. If DS-lite isused, however, the gateway device can provide the client devices withIPv4/IPv6 dual-stack routing while having only an IPv6 address. Thus, agateway device equipped with DS-lite technology can greatly save IPv4address resources. DS-lite uses IPv4-in-IPv6 tunneling to send asubscriber's IPv4 packet through a tunnel on the IPv6 access network tothe service provider. The IPv6 packet is decapsulated to recover thesubscriber's IPv4 packet and is then sent to the Internet. The responsepackets traverse through the same path back to the subscriber.

For a gateway device that has DS-lite technology enabled, users canaccess the Internet using their client devices through the gatewaydevice via either IPv4 or IPv6. However, if DS-lite fails, some clientdevices using an IPv4 address will lose Internet access. For example,the user's laptop computer, desktop computer, smartphone, tablet, etc.may be unable to browse websites or connect to external networks.Complaints from users without Internet access are a serious problem frommultiple system operators (MSOs) and Internet service providers (ISPs).

SUMMARY

Thus, it is important to keep the DS-lite function of gateway devicesoperating stably. Accordingly, there is a need to provide an apparatusand method for establishing and maintaining a DS-lite tunnel that canavoid failure of DS-lite functionality.

According to some example embodiments of inventive concepts describedherein, an electronic apparatus for establishing a DS-lite tunnel isprovided. The electronic apparatus includes a memory storingcomputer-readable instructions, and a processor configured to executethe computer-readable instructions to send a request for an InternetProtocol (IP) address of a Domain Name System (DNS) server and a domainname of an Address Family Transition Router (AFTR) server to a DynamicHost Configuration Protocol (DHCP) server using an IP address of theDHCP server, receive the IP address of the DNS server and the domainname of the AFTR server from the DHCP server in response to the request,and send a DNS query to the DNS server using the IP address of the DNSserver, wherein the DNS query includes the domain name of the AFTRserver. In response to the DNS query being successful, the processor ofthe electronic apparatus is further configured to execute thecomputer-readable instructions to receive an IP address of the AFTRserver from the DNS server, and establish the DS-lite tunnel between thegateway device and the AFTR server using the IP address of the AFTRserver.

In some example embodiments, in response to failure of the DNS query,the processor of the electronic apparatus is further configured toexecute the computer-readable instructions to establish the DS-litetunnel between the electronic apparatus and the AFTR server using apredetermined IP address. The predetermined IP address is stored in thememory based on one of a default configuration of the electronicapparatus, an initial setting by a user of the electronic apparatus, ora previous successful DNS query.

In some example embodiments, the processor of the electronic apparatusis further configured to execute the computer-readable instructions tosave the IP address of the AFTR server in the memory of the electronicapparatus in response to the DNS query being successful.

In some example embodiments, the processor of the electronic apparatusis further configured to execute the computer-readable instructions tomaintain the DS-lite tunnel between the electronic apparatus and theAFTR server using the saved IP address of the AFTR server that is storedin the memory of the electronic apparatus in response to the DNS querybeing successful.

In some example embodiments, the processor of the electronic apparatusis further configured to execute the computer-readable instructions toperiodically transmit subsequent DNS queries to the DNS server based ona DNS time to live (TTL) timer.

In some example embodiments, in response to one of the subsequent DNSqueries being successful, the processor of the electronic apparatus isfurther configured to execute the computer-readable instructions toreceive a subsequent IP address of the AFTR server from the DNS server,maintain the DS-lite tunnel between the electronic apparatus and theAFTR server using the subsequent IP address of the AFTR server, andupdate the memory of the electronic apparatus with the subsequent IPaddress of the AFTR server.

In some example embodiments, in response to failure of one of thesubsequent DNS queries, the processor of the electronic apparatus isfurther configured to execute the computer-readable instructions toretrieve the saved IP address or the subsequent IP address of the AFTRserver that is stored in the memory of the electronic apparatus inresponse to the DNS query or one of the subsequent DNS queries beingsuccessful, and maintain the DS-lite tunnel between the gateway deviceand the AFTR server using the retrieved IP address of the AFTR server.

According to some other example embodiments of inventive conceptsdescribed herein, a method for establishing a Dual-Stack Lite (DS-lite)tunnel is provided. The method may include sending a request for anInternet Protocol (IP) address of a Domain Name System (DNS) server anda domain name of an Address Family Transition Router (AFTR) server to aDynamic Host Configuration Protocol (DHCP) server using an IP address ofthe DHCP server, receiving the IP address of the DNS server and thedomain name of the AFTR server from the DHCP server in response to therequest, and sending a DNS query to the DNS server using the IP addressof the DNS server, wherein the DNS query includes the domain name of theAFTR server. In response to the DNS query being successful, the methodfurther includes receiving an IP address of the AFTR server from the DNSserver, and establishing the DS-lite tunnel between the gateway deviceand the AFTR server using the IP address of the AFTR server.

In some example embodiments, in response to failure of the DNS query,the method further includes establishing the DS-lite tunnel between thegateway device and the AFTR server using a predetermined IP address thatis stored in a memory of the gateway device.

In some example embodiments, the predetermined IP address is stored inthe memory of the gateway device based on one of a default configurationof the gateway device, an initial setting by a user, or a previoussuccessful DNS query.

In some example embodiments, the method further includes saving the IPaddress of the AFTR server in a memory of the gateway device in responseto the DNS query being successful.

In some example embodiments, the method further includes maintaining theDS-lite tunnel between the gateway device and the AFTR server using thesaved IP address of the AFTR server that is stored in the memory of thegateway device in response to the DNS query being successful.

In some example embodiments, the method further includes periodicallytransmitting subsequent DNS queries to the DNS server based on a DNStime to live (TTL) timer.

In some example embodiments, in response to one of the subsequent DNSqueries being successful, the method further includes receiving asubsequent IP address of the AFTR server from the DNS server,maintaining the DS-lite tunnel between the gateway device and the AFTRserver using the subsequent IP address of the AFTR server, and updatingthe memory of the gateway device with the subsequent IP address of theAFTR server.

In some example embodiments, in response to failure of one of thesubsequent DNS queries, the method further includes retrieving the savedIP address or the subsequent IP address of the AFTR server that isstored in the memory of the gateway device in response to the DNS queryor one of the subsequent DNS queries being successful, and maintainingthe DS-lite tunnel between the gateway device and the AFTR server usingthe retrieved IP address of the AFTR server.

According to yet some other example embodiments of inventive conceptsdescribed herein, a non-transitory computer-readable medium storing asoftware program for establishing a DS-lite tunnel is provided. Thesoftware program, when executed by a processor of the above-describedelectronic apparatus, causes the electronic apparatus to perform theabove-described method for establishing the DS-lite tunnel, for example.

Thus, according to various example embodiments of inventive conceptsdisclosed herein, it is possible to establish and maintain a DS-litetunnel between a gateway device and an AFTR server, even in the event ofa failure of a DNS query, using mechanism that employs a predeterminedIP address or a saved IP address to ensure that the DS-lite technologykeeps working when a DNS query fails.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an architecture diagram of an example of a network including aplurality of electronic apparatuses, according to some exampleembodiments.

FIG. 2 is a diagram showing a flow of communications for establishing aDS-lite tunnel between a gateway device and an AFTR server.

FIG. 3 is a flow chart of a method for establishing a DS-lite tunnelbetween a gateway device and an AFTR server, according to some exampleembodiments.

FIG. 4 is a flow chart of a method for maintaining a DS-lite tunnelbetween a gateway device and an AFTR server, according to some exampleembodiments.

FIG. 5 is block diagram of an electronic apparatus for establishing andmaintaining a DS-lite tunnel, according to some example embodiments.

DETAILED DESCRIPTION

For simplicity and illustrative purposes, the principles of theembodiments are described by referring mainly to examples thereof. Inthe following description, numerous specific details are set forth inorder to provide a thorough understanding of some example embodiments.It will be apparent however, to one of ordinary skill in the art, thatsome other example embodiments may be practiced without limitation tothese specific details. In some instances, well known methods andstructures have not been described in detail so as not to unnecessarilyobscure the example embodiments.

FIG. 1 is an architecture diagram of an example of a network including aplurality of electronic apparatuses, according to some exampleembodiments.

As shown in FIG. 1 , a possible implementation of a network 1 mayinclude a network cloud 5, a gateway device 10, a plurality of clientdevices 20 (e.g., client device 1, client device 2, [ . . . ], clientdevice N), a DHCP server 30, a DNS server 40, and an AFTR server 50, forexample. The local network of the gateway device 10 may also include anetwork switch 12 (e.g., providing wired connections) and a networkrepeater 14 (e.g., a wireless extender), although such devices may notbe present according to some other example embodiments. It should beappreciated that various example embodiments of inventive conceptsdisclosed herein are not limited to one of each device and there may bemultiple or many of one or more of the aforementioned electronicapparatuses in the network 1, which may itself consist of multiplecommunication networks and various known or future developed wiredand/or wireless connectivity technologies, protocols, devices, and thelike.

The gateway device 10 is an electronic device that provides networkaccess between local area network (LAN) hosts to a wide area network(WAN) via a modem. The modem may or may not be integrated directly intothe hardware of the gateway device 10 according to various exampleembodiments. The WAN is a larger external computer network, generaloperated by an internet service provider (ISP) or multiple systemoperator (MSO), also referred to generally as the Internet. For example,the gateway device 10 may provide routing between client devices 20 inthe LAN and the Internet, wired and wireless connectivity within theLAN, network address translation (NAT) for IPv4, DHCP for IPv4 androuter advertisements for IPv6, among many other functions. The gatewaydevice 10 may be referred to as a residential gateway, a home gateway, arouter, a modem, an access point, or the like. As shown in FIG. 1 , thegateway device 10 may communicate with the DHCP server 30, the DNSserver 40, and/or the AFTR server 50 via the network cloud 5.

The plurality of client devices 20 may be any of a wide variety of userdevices, including but not limited to, laptop computers, desktopcomputers, tablets, smartphones, Internet of Things (IoT) devices,televisions, set-top boxes, media hubs, Bluetooth devices, and the like.The gateway device 10 may provide wired and/or wireless connectivity tothe client devices 20 to enable access to an external network, such as awide area network (WAN), the Internet, etc. Some of the client devices20 may be able to use both IPv4 addresses and IPv6 addresses. However,some other client devices 20 may use IPv4 addresses only.

The Dynamic Host Configuration Protocol (DHCP) server 30 is a networkserver that dynamically assigns IP addresses, default gateways, andother network configuration parameters to client devices 20automatically, via the gateway device 10. A centralized dual-protocolDHCP server 30 can provide both IPv4 addresses and IPv6 addresses toclient devices 20.

The Domain Name Server (DNS server) 40 is used to translate a domainname to an Internet Protocol (IP) address for the further route in theInternet. For example, when a user of a client device 20 needs to accessa web site, the user will input the domain name of the web site in a webbrowser, and the web browser will send a DNS request to the DNS server40 to translate the input website name to an IP address. Then, the webbrowser of the client device 20 can access the website with this IPaddress.

In order to provide Internet access to the client devices 20 with onlyIPv4 address capability, the gateway device 10 may set up a Dual-StackLite (DS-lite) tunnel with an Address Family Transition Router (AFTR)server 50. The essence of DS-lite technology is to deploy anIPv4-in-IPv6 tunnel over an IPv6 network for IPv4 service transmission.For DS-lite service, the gateway device 10 will setup a tunnel with theAFTR server 50 to transmit the IPv4-in-IPv6 packets. The AFTR server 50acts as an IPv4 over IPv6 tunnel endpoint. In the upstream direction,the AFTR server 50 is responsible for removing IPv6 headers of packetsreceived from the gateway device 10 (e.g., request packets) through theDS-lite tunnel, and then sending them to the Internet. In the downstreamdirection, the AFTR server 50 is responsible for encapsulating IPv6headers of the packets received from the destination IPv4 host (e.g.,reply packets), and sending them to the gateway device 10 through theDS-lite tunnel.

FIG. 2 is a diagram showing a flow of communications for establishing aDS-lite tunnel between a gateway device and an AFTR server. For example,a gateway device 10 may communicate with a DHCP server 30, a DNS server40, and an AFTR server 50, as described above in connection with FIG. 1.

As shown in FIG. 2 , a method for establishing a DS-lite tunnel betweena gateway device and an AFTR server involves a series a communicationsexchanged between a gateway device, a DHCP server, a DNS server, and aAFTR server, including at least:

-   -   1. Message 1 (“DHCP discover”) includes a DHCP option 6 to        request an IP address of a DNS server, and DHCP option 64 to        request a domain name of an AFTR server.    -   2. Message 2 (“DHCP offer”) includes the IP address of the DNS        server, and the domain name of the AFTR server.    -   3. Message 3 (“DNS query for AFTR server address”) includes the        domain name of the AFTR server.    -   4. Message 4 (“DNS response”) includes the IP address of the        AFTR server.    -   5. Message 5 (“Setup DSlite tunnel) is sent by the gateway        device to the AFTR server using the IP address of the AFTR        server.    -   6. Message 6 (“setup DSlite tunnel response”) is received by the        gateway device from the AFTR server.

Once the gateway device receives the “setup DSlite tunnel response” fromthe AFTR server, the gateway device can establish the DS-lite tunnelbetween the gateway device and the AFTR server, and provide access to anexternal network (the Internet) to client devices (e.g., user deviceswith IPv4 addresses only) in the local area network (LAN) of the gatewaydevice via the DS-lite tunnel and the AFTR server.

Additionally, the gateway device can maintain the DS-lite tunnel betweenthe gateway device and the AFTR server. For example, the gateway devicemay periodically send subsequent DNS queries to the DNS server, andreceive subsequent IP addresses of the AFTR server from the DNS server.

However, a problem exists in a known gateway device and related methodfor establishing and maintaining a DS-lite tunnel. If the known gatewaydevice does not receive a reply (no Message 4—“DNS response”) from theDNS server in response to the DNS query, then the known gateway devicewill not be able to establish the DS-lite tunnel between the gatewaydevice and the AFTR server according to the related method. Similarly,if the known gateway device does not receive a reply (DNS response) fromthe DNS server in response to one of the subsequent DNS queries, thenthe known gateway device will not be able to maintain the DS-lite tunnelbetween the known gateway device and the AFTR server according to therelated method. For example, a gateway device starting an IPv6connection slowly may cause the first IPv6 DNS query to fail. Otherreasons why a DNS query might fail include, but are not limited to, adropped connection, congestion on the network, low signal strength,interference, packets arriving out of sequence, and numerous otherproblems that can occur within specific network environments.

In either case, the absence of receiving the reply (“DNS response”) fromthe DNS server in response to a DNS query results in a failure of theDNS query, and the process for establishing the DS-lite tunnelterminates, or in the case of maintaining the DS-lite tunnel the DS-litetunnel is terminated (e.g., deleted, demolished, destroyed, etc.). Ifthe DS-lite tunnel is terminated upon failure of a DNS query, the knowngateway device may not be configured to retry the DNS request, and/ormay not be configured to restart the process from the beginning, inwhich case the known gateway device will do nothing in response to thefailure of the DNS query according to the related method. When theDS-lite tunnel is destroyed upon failure of the DNS query, this resultsin an “IPv4 datapath fail,” which is a serious issue. As a result, theusers of client devices having only IPv4 addresses will not be able toaccess the Internet (e.g., websites, external networks, or the like) viathe known gateway device and related method.

Accordingly, there is a need for an improved method and apparatus foravoiding failure of the DS-lite function and keeping a DS-lite tunnelbetween a gateway device and an AFTR server operating stably in responseto a failed DNS query.

FIG. 3 is a flow chart of a method for establishing a DS-lite tunnelbetween a gateway device and an AFTR server, according to some exampleembodiments.

The method of FIG. 3 may be performed by the gateway device 10 of FIG. 1, for example. The gateway device 10 may include processing circuitryfor implementing the algorithm for establishing the DS-lite tunnelbetween the gateway device 10 and the AFTR server 50. For example, thegateway device 10 may include a memory device storing software in theform of computer-readable instructions and a processor configured toexecute the software. The gateway device 10 may also store data (e.g.,IP addresses) in the memory device or in a separate memory, for useduring the process. Thus, the gateway device 10 may include acombination of hardware and software programmed to establish the DS-litetunnel.

At step S100, the gateway device 10 starts up. At GW startup, thegateway device 10 knows an IP address of a DHCP server 30. For example,the IP address of the DHCP server 30 may be pre-configured or stored inthe memory of the gateway device 10 from a previous communicationsession.

At step S110, the gateway device 10 acquires an IP address of the DNSserver 40 and a domain name of the AFTR server 50 from the DHCP server30. The gateway device 10 connects with the DHCP server 30 using the IPaddress of the DHCP server 30. The gateway device 10 sends a request(“DHCP discover”) to the DHCP server 30, including a request for an IPaddress of a DNS server 40 (e.g., via DHCP option 6) and a domain nameof an AFTR server 50 (e.g., via DHCP option 64). In response to the DHCPrequest, the gateway device 10 receives a reply (“DHCP offer”) from theDHCP server 30, including the IP address of the DNS server 40 and thedomain name of the AFTR server 50.

At step S120, the gateway device 10 sends a DNS query to the DNS server40, including the domain name of the AFTR server 50. The gateway device10 connects with the DNS server 40 using the IP address of the DNSserver 40 that the gateway device 10 received from the DHCP server 30(at step S110). The gateway device 10 sends the DNS query (“DNS queryfor AFTR server address”) to the DNS server 40, including a request forthe IP address of the AFTR server 50.

At step S130, the gateway device 10 determines whether a reply to theDNS query was received from the DNS server 40. If a reply to the DNSquery (“DNS response”) was received from the DNS server 40 (“YES” atstep S130), the DNS query was successful, and the method proceeds tostep S140.

At step S140, the gateway device 10 receives the IP address of the AFTRserver 50, which is included in the reply to the DNS query (“DNSresponse”) that the gateway device 10 received from the DNS server 40.

At step S150, the gateway device 10 establishes a DS-lite tunnel betweenthe gateway device 10 and the AFTR server 50. The gateway device 10connects with the AFTR server 50 using the IP address of the AFTR server50 that the gateway device 10 received from the DNS server 40 (at stepS140), and sends a request to establish the DS-lite tunnel (“setupDSlite tunnel”) to the AFTR server 50. In response to the request, thegateway device 10 receives a reply (“setup DSlite tunnel response”) fromthe AFTR server 50, and establishes the DS-lite tunnel between thegateway device 10 and the AFTR server 50.

As discussed above, the gateway device 10 can then provide the clientdevices 20 (e.g., user devices with IPv4 addresses only) with access toan external network (the Internet), via the DS-lite tunnel that has beenestablished between the gateway device 10 and the AFTR server 50 usingthe IP address of the AFTR server 50.

According to some example embodiments, the gateway device 10 saves theIP address of the AFTR server 50 in the memory of the gateway device 10,at step S160.

Once the DS-lite tunnel is established, the gateway device 10 canmaintain the DS-lite tunnel with the AFTR server 50. For example, thegateway device 10 may periodically send subsequent DNS queries forsubsequent IP addresses of the AFTR server 50 to the DNS server 40,based on a DNS time to live (TTL) timer. At step S170, the gatewaydevice 10 determines whether the DNS TTL timer has elapsed (“DNS TTLtimer expired?”). If the DNS TTL timer has not yet elapsed (“NO” at stepS170), then the method returns to step S170 (e.g., after some delay orthe like). If the DNS TTL timer has elapsed, then the method returns tostep S120 to send a subsequent DNS query to the DNS server 40 (alsorefer to step S220 of FIG. 4 ). Details regarding the subsequent DNSquery will be discussed below with reference to FIG. 4 .

Now referring back to step S130, if the gateway device 10 determinesthat a reply to the DNS query (“DNS response”) was not received from theDNS server 40 (“NO” at step S130), then the DNS query failed. Asdiscussed above, the related method performed by the known gatewaydevice would ordinarily end at this point, without establishing aDS-lite tunnel in the event of failure of the DNS query (e.g., “IPv4datapath fail”), and the client devices having only IPv4 addresses wouldbe unable to access the Internet. However, in the event that the gatewaydevice 10 according to some example embodiments does not receive a replyto the DNS query from the DNS server 40, then the method according tosome example embodiments of inventive concepts disclosed herein does notend, and instead proceeds to step S180.

At step S180, the gateway device 10 retrieves a predetermined IP addressfrom the memory of the gateway device 10. The predetermined IP addressmay be stored in the memory of the gateway device 10 based on a defaultconfiguration of the gateway device 10, an initial setting by a user(e.g., a customer, a technician, a network administrator, etc.), or aprevious successful DNS query, according to some example embodiments.For example, the predetermined IP address may be a user pre-set usingManagement Information Base (MIB). An MSO can use Simple NetworkManagement Protocol (SNMP) to manage user modems and gateways remotely.Most of the modem and gateway configuration information is saved in MIBand can be accessed and set remotely via SNMP. Alternatively, thepredetermined IP address may be saved in the memory of the gatewaydevice 10 in response to a previous successful DNS query, for example.

At step S190, the gateway device 10 establishes the DS-lite tunnelbetween the gateway device 10 and the AFTR server 50 using thepredetermined IP address. The gateway device 10 connects with the AFTRserver 50 using the predetermined IP address that the gateway device 10retrieved from the memory of the gateway device 10, and sends a requestto establish the DS-lite tunnel (“setup DSlite tunnel”) to the AFTRserver 50. In response to the request, the gateway device 10 receives areply (“setup DSlite tunnel response”) from the AFTR server 50, andestablishes the DS-lite tunnel between the gateway device 10 and theAFTR server 50.

In this manner, the gateway device 10 according to some exampleembodiments of inventive concepts disclosed herein can provide theclient devices 20 (e.g., user devices with IPv4 addresses only) withaccess to an external network (the Internet), via the DS-lite tunnelthat has been established between the gateway device 10 and the AFTRserver 50, even in the event of a failed DNS query by using apredetermined IP address that is stored in the memory of the gatewaydevice 10.

Next, a process for maintaining the DS-lite tunnel that has beenestablished between the gateway device 10 and the AFTR server 50,including details regarding the subsequent DNS query (mentioned above inconnection with step S170), will be discussed with reference to FIG. 4 .

FIG. 4 is a flow chart of a method for maintaining a DS-lite tunnelbetween a gateway device and an AFTR server, according to some exampleembodiments.

The method of FIG. 4 may be performed by the gateway device 10 of FIG. 1, for example. The gateway device 10 may include processing circuitryfor implementing the algorithm for maintaining the DS-lite tunnelbetween the gateway device 10 and the AFTR server 50. For example, thegateway device 10 may include a memory device storing software in theform of computer-readable instructions and a processor configured toexecute the software. The gateway device 10 may also store data (e.g.,IP addresses) in the memory device or in a separate memory, for useduring the process. Thus, the gateway device 10 may include acombination of hardware and software programmed to maintain the DS-litetunnel.

After a DNS TTL timer expires (“YES” at S170 in FIG. 3 , for example), amethod for maintaining the DS-lite tunnel between the gateway device 10and the AFTR server 50 may proceed to step S220 of FIG. 4 , according tosome example embodiments. At step S220, the gateway device 10 sends asubsequent DNS query to the DNS server 40, including the domain name ofthe AFTR server 50 and a request for a subsequent IP address of the AFTRserver 50.

At step S230, the gateway device 10 determines whether a reply to thesubsequent DNS query was received from the DNS server 40. If a reply tothe subsequent DNS query (“DNS response”) was received from the DNSserver 40 (“YES” at step S230), the subsequent DNS query was successful,and the method proceeds to step S240.

At step S240, the gateway device 10 receives the subsequent IP addressof the AFTR server 50, which is included in the reply to the subsequentDNS query (“DNS response”) that the gateway device 10 received from theDNS server 40.

At step S250, the gateway device 10 maintains the DS-lite tunnel betweenthe gateway device 10 and the AFTR server 50 using the subsequent IPaddress of the AFTR server 50 that the gateway device 10 received fromthe DNS server 40 (at step S240).

As discussed above, the gateway device 10 can then continue to providethe client devices 20 (e.g., user devices with IPv4 addresses only) withaccess to an external network (the Internet), via the DS-lite tunnelthat has been maintained between the gateway device 10 and the AFTRserver 50 using the subsequent IP address of the AFTR server 50.

According to some example embodiments, the gateway device 10 updates thememory of the gateway device 10 with the subsequent IP address of theAFTR server 50, at step S260.

Again, the gateway device 10 may continue to maintain the DS-lite tunnelwith the AFTR server 50, if still needed. For example, the gatewaydevice 10 may periodically send additional subsequent DNS queries foradditional subsequent IP addresses of the AFTR server 50 to the DNSserver 40, based on the DNS TTL timer. At step S270, the gateway device10 determines whether the DNS TTL timer has elapsed (“DNS TTL timerexpired?”). If the DNS TTL timer has not yet elapsed (“NO” at stepS270), then the method returns to step S270 (e.g., after some delay orthe like). If the DNS TTL timer has elapsed, then the method returns tostep S220 to send an additional subsequent DNS query to the DNS server40. This process may continue (e.g., repeat at periodic intervals) foras long as the gateway device 10 needs to maintain the DS-lite tunnelwith the AFTR server 50.

Now referring back to step S230, if the gateway device 10 determinesthat a reply to the subsequent DNS query (“DNS response”) was notreceived from the DNS server 40 (“NO” at step S230), then the subsequentDNS query failed. As discussed above, the related method performed bythe known gateway device would ordinarily end at this point, withoutmaintaining the DS-lite tunnel in the event of failure of the subsequentDNS query (e.g., “IPv4 datapath fail”), and the client devices havingonly IPv4 addresses would lose access to the Internet. However, in theevent that the gateway device 10 according to some example embodimentsdoes not receive a reply to the subsequent DNS query from the DNS server40, then the method according to some example embodiments of inventiveconcepts disclosed herein does not end, and instead proceeds to stepS280.

At step S280, the gateway device 10 retrieves a saved IP address of theAFTR server 50 from the memory of the gateway device 10. For example,the gateway device 10 may have stored an IP address of the AFTR server50 in the memory of the gateway device 10 in response to a previoussuccessful DNS query (e.g., at step S160 of FIG. 3 ), according to someexample embodiments.

At step S290, the gateway device 10 maintains the DS-lite tunnel betweenthe gateway device 10 and the AFTR server 50 using the saved IP addressof the AFTR server 50, according to some example embodiments.

In this manner, the gateway device 10 according to some exampleembodiments of inventive concepts disclosed herein can continue toprovide the client devices 20 (e.g., user devices with IPv4 addressesonly) with access to an external network (the Internet), via the DS-litetunnel that has been maintained between the gateway device 10 and theAFTR server 50, even in the event of a failed subsequent DNS query byusing a saved IP address that is stored in the memory of the gatewaydevice 10 in response to a previous successful DNS query.

FIG. 5 is block diagram of an electronic apparatus for establishing andmaintaining a DS-lite tunnel, according to some example embodiments. Forexample, the electronic apparatus may be a gateway device 10 describedabove in connection with FIG. 1 , and may perform the methods describedabove in connection with FIGS. 2-4 .

As shown in FIG. 5 , the gateway device 10 includes at least a processor101, a memory 102, and a bus 103, among various other electroniccomponents (e.g., for enabling wired and/or wireless communication)which are not illustrated for simplicity.

The processor 101 controls the general operations of the gateway device10 and may include, but is not limited to, a central processing unit(CPU), dedicated control circuitry, a hardware microprocessor, amulti-core processor, a single core processor, a field programmable gatearray (FPGA), a microcontroller, an integrated circuit (IC), anapplication specific integrated circuit (ASIC), a large scale integratedcircuit (LSI), system LSI, super LSU or ultra LSI components, a digitalsignal processor (DSP), or other similar processing device capable ofexecuting any type of instructions, algorithms, programs, or softwarefor controlling the circuitry and performing the above-describedfunctions of the gateway device 10.

The memory 102 may be a non-transitory computer-readable medium thatstores various programming code (e.g., software instructions) and datafor implementing steps of an algorithm when executed by the processor101. The memory 102 may include a single memory or multiple memories ormemory locations that include, but are not limited to, a random accessmemory (RAM), dynamic random access memory (DRAM), a memory buffer, ahard drive, a database, an erasable programmable read only memory(EEPROM), a read only memory (ROM) a flash memory, logic blocks of afield programmable gate array (FPGA), hard disk or any other variouslayers of memory hierarchy. The memory 102 can be used to store any typeof software instructions including a program associated with algorithms,processes, or operations for controlling the general functions andoperation of the gateway device 10 and performing the method ofestablishing and maintaining the DS-lite tunnel for the client devices20. For example, the memory 102 can include RAM as a working memory forthe processor 101 and/or a non-volatile memory provided for storage ofprogram code, software, apps, device information, user data, and variousother pieces of data associated with establishing and maintaining aDS-lite tunnel in a network.

The bus 103 is an internal connection that enables communication betweenvarious electronic components of the gateway device 10. For example, theprocessor 101 may store and retrieve program instructions and/or datafor performing steps of the algorithm from the memory 102 via the bus103.

In summary, the above-described method and apparatus according tovarious example embodiments of inventive concepts disclosed herein makeit possible to establish and maintain a DS-lite tunnel between a gatewaydevice and an AFTR server, even in the event of a failure of a DNS queryor a subsequent DNS query, using mechanism that employs a predeterminedIP address or a saved IP address of the AFTR server that is stored in amemory of the gateway device in order to ensure that the DS-litetechnology keeps working when a DNS query fails. These features amountto technological improvements over a known gateway device and relatedmethod for at least the reasons discussed in detail above.

Each of the elements of the present invention may be configured byimplementing dedicated hardware or a software program on a memorycontrolling a processor to perform the functions of any of thecomponents or combinations thereof. Any of the components may beimplemented as a CPU or other processor reading and executing a softwareprogram from a recording medium such as a hard disk or a semiconductormemory, for example. The processes disclosed above constitute examplesof algorithms that can be affected by software, applications (apps, ormobile apps), or computer programs. The software, applications, computerprograms or algorithms can be stored on a non-transitorycomputer-readable medium for instructing a computer, such as a processorin an electronic apparatus, to execute the methods or algorithmsdescribed herein and shown in the drawing figures (FIGS. 2-4 ). Thesoftware and computer programs, which can also be referred to asprograms, applications, components, or code, include machineinstructions for a programmable processor, and can be implemented in ahigh-level procedural language, an object-oriented programming language,a functional programming language, a logical programming language, or anassembly language or machine language.

The term “non-transitory computer-readable medium” refers to anycomputer program product, apparatus or device, such as a magnetic disk,optical disk, solid-state storage device (SSD), memory, and programmablelogic devices (PLDs), used to provide machine instructions or data to aprogrammable data processor, including a computer-readable medium thatreceives machine instructions as a computer-readable signal. By way ofexample, a computer-readable medium can comprise DRAM, RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium that can be used to carryor store desired computer-readable program code in the form ofinstructions or data structures and that can be accessed by ageneral-purpose or special-purpose computer, or a general-purpose orspecial-purpose processor. Disk or disc, as used herein, includescompact disc (CD), laser disc, optical disc, digital versatile disc(DVD), floppy disk and Blu-ray disc. Combinations of the above are alsoincluded within the scope of computer-readable media.

While the principles of the inventive concepts have been described abovein connection with specific devices, apparatuses, systems, algorithms,programs and/or methods, it is to be clearly understood that thisdescription is made only by way of example and not as limitation. One ofordinary skill in the art will appreciate that various modifications andchanges can be made without departing from the scope of the claimsbelow.

The word “comprise” or a derivative thereof, when used in a claim, isused in a nonexclusive sense that is not intended to exclude thepresence of other elements or steps in a claimed structure or method. Asused in the description herein and throughout the claims that follow,“a”, “an”, and “the” includes plural references unless the contextclearly dictates otherwise. Also, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise. Use of the phrases“capable of,” “configured to,” or “operable to” in one or moreembodiments refers to some apparatus, logic, hardware, and/or elementdesigned in such a way to enable use thereof in a specified manner.

The above description illustrates various embodiments along withexamples of how aspects of particular embodiments may be implemented andare presented to illustrate the flexibility and advantages of particularembodiments as defined by the following claims, and should not be deemedto be the only embodiments. One of ordinary skill in the art willappreciate that based on the above disclosure and the following claims,other arrangements, embodiments, implementations and equivalents may beemployed without departing from the scope hereof as defined by theclaims. It is contemplated that the implementation of the components andfunctions of the present disclosure can be done with any newly arisingtechnology that may replace any of the above-implemented technologies.Accordingly, the specification and figures are to be regarded in anillustrative rather than a restrictive sense, and all such modificationsare intended to be included within the scope of the present invention.The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The invention is definedsolely by the appended claims including any amendments made during thependency of this application and all equivalents of those claims asissued.

What we claim is:
 1. An electronic apparatus for establishing aDual-Stack Lite (DS-lite) tunnel, the electronic apparatus comprising: amemory storing computer-readable instructions; a processor configured toexecute the computer-readable instructions to: acquire an InternetProtocol (IP) address of a Domain Name System (DNS) server and a domainname of an Address Family Transition Router (AFTR) server from a DynamicHost Configuration Protocol (DHCP) server; send a DNS query to the DNSserver, wherein the DNS query comprises the domain name of the AFTRserver; determine that a reply to the DNS query was received from theDNS server, wherein the reply comprises the IP address of the AFTRserver; establish a DS-lite tunnel between the electronic apparatus andthe AFTR server; provide to one or more client devices with IPv4addresses only access to an external network via the DS-lite tunnelusing the IP address of the AFTR server; maintain the DS-lite tunnelwith the AFTR server; and periodically send one or more subsequent DNSqueries for one or more subsequent IP addresses of the AFTR server tothe DNS server based on a DNS time to live (TTL) timer.
 2. Theelectronic apparatus of claim 1, wherein the processor is furtherconfigured to execute the computer-readable instructions to: in responseto failure of the DNS query, establish the DS-lite tunnel between theelectronic apparatus and the AFTR server using a predetermined IPaddress, wherein the predetermined IP address is stored in the memorybased on one of: a default configuration of the electronic apparatus; aninitial setting by a user of the electronic apparatus; or a previoussuccessful DNS query.
 3. The electronic apparatus of claim 1, whereinthe IP address of the AFTR server is saved in the memory of theelectronic apparatus.
 4. The electronic apparatus of claim 3, whereinthe processor is further configured to execute the computer-readableinstructions to: maintain the DS-lite tunnel between the electronicapparatus and the AFTR server using the saved IP address of the AFTRserver that is stored in the memory of the electronic apparatus inresponse to the DNS query being successful.
 5. The electronic apparatusof claim 1, wherein the processor is further configured to execute thecomputer-readable instructions to: determine that the DNS time to live(TTL) timer has elapsed.
 6. The electronic apparatus of claim 1, whereinthe processor is further configured to execute the computer-readableinstructions to: determine that the one of the one or more subsequentDNS queries is successful based on a reply to the one of the one or moresubsequent DNS queries.
 7. The electronic apparatus of claim 1, whereinthe processor is further configured to execute the computer-readableinstructions to: in response to failure of one of the one or moresubsequent DNS queries: retrieve the saved IP address or the subsequentIP address of the AFTR server that is stored in the memory of theelectronic apparatus in response to the DNS query or one of thesubsequent DNS queries being successful; and maintain the DS-lite tunnelbetween the gateway device and the AFTR server using the retrieved IPaddress of the AFTR server.
 8. A method for establishing a Dual-StackLite (DS-lite) tunnel, the method comprising: acquiring an InternetProtocol (IP) address of a Domain Name System (DNS) server and a domainname of an Address Family Transition Router (AFTR) server from a DynamicHost Configuration Protocol (DHCP) server; sending a DNS query to theDNS server, wherein the DNS query comprises the domain name of the AFTRserver; determining that a reply to the DNS query was received from theDNS server, wherein the reply comprises the IP address of the AFTRserver; establishing a DS-lite tunnel between the electronic apparatusand the AFTR server; providing to one or more client devices with IPv4addresses only access to an external network via the DS-lite tunnelusing the IP address of the AFTR server; maintaining the DS-lite tunnelwith the AFTR server; and periodically sending one or more subsequentDNS queries for one or more subsequent IP addresses of the AFTR serverto the DNS server based on a DNS time to live (TTL) timer.
 9. The methodof claim 8, further comprising: in response to failure of the DNS query,establishing the DS-lite tunnel between the gateway device and the AFTRserver using a predetermined IP address that is stored in a memory ofthe gateway device, wherein the predetermined IP address is stored inthe memory of the gateway device based on one of: a defaultconfiguration of the gateway device; an initial setting by a user of thegateway device; or a previous successful DNS query.
 10. The method ofclaim 8, wherein the IP address of the AFTR server is saved in a memoryof the gateway device.
 11. The method of claim 10, further comprising:maintaining the DS-lite tunnel between the gateway device and the AFTRserver using the saved IP address of the AFTR server that is stored inthe memory of the gateway device in response to the DNS query beingsuccessful.
 12. The method of claim 8, further comprising: determinethat the DNS time to live (TTL) timer has elapsed.
 13. The method ofclaim 8, further comprising: in response to one of the subsequent DNSqueries being successful: receiving a subsequent IP address of the AFTRserver from the DNS server; maintaining the DS-lite tunnel between thegateway device and the AFTR server using the subsequent IP address ofthe AFTR server; and updating the memory of the gateway device with thesubsequent IP address of the AFTR server.
 14. The method of claim 8,further comprising: in response to failure of one of the subsequent DNSqueries: retrieving the saved IP address of the AFTR server that isstored in the memory of the gateway device in response to the DNS querybeing successful; and maintaining the DS-lite tunnel between the gatewaydevice and the AFTR server using the saved IP address of the AFTRserver.
 15. A non-transitory computer-readable medium of an electronicapparatus storing one or more computer-readable instructions forestablishing a Dual-Stack Lite (DS-lite) tunnel, that when executed by aprocessor of the electronic apparatus, cause the processor to performone or more operations comprising: acquiring an Internet Protocol (IP)address of a Domain Name System (DNS) server and a domain name of anAddress Family Transition Router (AFTR) server from a Dynamic HostConfiguration Protocol (DHCP) server; sending a DNS query to the DNSserver, wherein the DNS query comprises the domain name of the AFTRserver; determining that a reply to the DNS query was received from theDNS server, wherein the reply comprises the IP address of the AFTRserver; establishing a DS-lite tunnel between the electronic apparatusand the AFTR server; providing to one or more client devices with IPv4addresses only access to an external network via the DS-lite tunnelusing the IP address of the AFTR server; maintaining the DS-lite tunnelwith the AFTR server; and periodically sending one or more subsequentDNS queries for one or more subsequent IP addresses of the AFTR serverto the DNS server based on a DNS time to live (TTL) timer.
 16. Thecomputer-readable medium of claim 15, wherein the software program, whenexecuted by the processor of the electronic apparatus, further causesthe electronic apparatus to: in response to failure of the DNS query,establish the DS-lite tunnel between the electronic apparatus and theAFTR server using a predetermined IP address that is stored in a memoryof the electronic apparatus based on one of: a default configuration ofthe electronic apparatus; an initial setting by a user of the electronicapparatus; or a previous successful DNS query.
 17. The computer-readablemedium of claim 15, wherein the IP address of the AFTR server is savedin a memory of the electronic apparatus.
 18. The computer-readablemedium of claim 15, wherein the software program, when executed by theprocessor of the electronic apparatus, further causes the electronicapparatus to at least one of: maintain the DS-lite tunnel between theelectronic apparatus and the AFTR server using the saved IP address ofthe AFTR server in response to the DNS query being successful; anddetermine that the one of the one or more subsequent DNS queries issuccessful based on a reply to the one of the one or more subsequent DNSqueries.
 19. The computer-readable medium of claim 15, wherein thesoftware program, when executed by the processor of the electronicapparatus, further causes the electronic apparatus to: determine thatthe DNS time to live (TTL) timer has elapsed.
 20. The computer-readablemedium of claim 15, wherein the software program, when executed by theprocessor of the electronic apparatus, further causes the electronicapparatus to: in response to failure of one of the subsequent DNSqueries: retrieve the saved IP address of the AFTR server that is storedin the memory of the electronic apparatus in response to the DNS querybeing successful; and maintain the DS-lite tunnel between the electronicapparatus and the AFTR server using the saved IP address of the AFTRserver.